home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 5
/
Amiga Tools 5.iso
/
grafik
/
3d & render tools
/
irit
/
man
/
man6
/
sweepsrf.6
< prev
next >
Wrap
Text File
|
1996-07-16
|
3KB
|
61 lines
.TH SWEEPSRF
6 "IRIT Version 6.0"
.SH NAME
SWEEPSRF
SurfaceType SWEEPSRF( CurveType CrossSection, CurveType Axis,
CurveType FrameCrv | VectorType FrameVec | ConstType OFF )
Constructs a generalized cylinder surface. This function sweeps a specified
cross-section CrossSection along the provided Axis.
By default, when frame specification is OFF, the orientation
of the cross section is computed using the Axis curve tangent and
normal. However, unlike the Frenet frame, attempt is made to minimize
the normal change, as can happen along inflection points in Axis.
If a VectorType FrameVec is provided as a frame orientation setting,
it is used to fix the binormal direction to this value. In other words, the
orientation frame has a fixed binormal. If a CurveType FrameCrv is
specified as a frame orientation setting, this vector field curve is
evaluated at each placement of the cross-section to yield the needed binormal.
The resulting sweep is only an approximation of the real sweep. The
resulting sweep surface will not be exact, in general.
Refinement of the axis curve at the proper location, where accuracy is
important, should improve the accuracy of the output. The parametric domains
of FrameCrv do not have to match the parametric domain of Axis,
and its parametric domain is automatically made compatible by this function.
Example:
Cross = arc( vector( 0.2, 0.0, 0.0 ),
vector( 0.2, 0.2, 0.0 ),
vector( 0.0, 0.2, 0.0 ) ) +
arc( vector( 0.0, 0.4, 0.0 ),
vector( 0.1, 0.4, 0.0 ),
vector( 0.1, 0.5, 0.0 ) ) +
arc( vector( 0.8, 0.5, 0.0 ),
vector( 0.8, 0.3, 0.0 ),
vector( 1.0, 0.3, 0.0 ) ) +
arc( vector( 1.0, 0.1, 0.0 ),
vector( 0.9, 0.1, 0.0 ),
vector( 0.9, 0.0, 0.0 ) ) +
ctlpt( E2, 0.2, 0.0 );
Axis = arc( vector( -1.0, 0.0, 0.0 ),
vector( 0.0, 0.0, 0.1 ),
vector( 1.0, 0.0, 0.0 ) );
Axis = crefine( Axis, FALSE, list( 0.25, 0.5, 0.75 ) );
Srf1 = SWEEPSRF( Cross, Axis, OFF );
Srf2 = SWEEPSRF( Cross, Axis, vector( 0.0, 1.0, 1.0 ) );
Srf3 = SWEEPSRF( Cross, Axis,
cbezier( list( ctlpt( E3, 1.0, 0.0, 0.0 ),
ctlpt( E3, 0.0, 1.0, 0.0 ),
ctlpt( E3, -1.0, 0.0, 0.0 ) ) ) );
constructs a rounded rectangle cross-section and sweeps it along an arc,
while orienting it several ways. The axis curve Axis is manually
refined to better approximate the requested shape.
See also SWPSCLSRF for sweep with scale.